package com.gaohe.scp.mapper;

import java.util.List;

import com.gaohe.common.constant.ScheduleConstants;
import com.gaohe.scp.domain.CsCar;
import com.gaohe.scp.domain.vo.CsCarDto;
import com.gaohe.scp.domain.vo.CsCarVo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * 车辆管理Mapper接口
 *
 * @author liuxiangyu
 * @date 2025-03-28
 */
public interface CsCarMapper
{
    /**
     * 查询车辆管理
     *
     * @param carId 车辆管理主键
     * @return 车辆管理
     */
    public CsCar selectCsCarByCarId(Long carId);

    /**
     * 查询车辆管理列表
     *
     * @param csCar 车辆管理
     * @return 车辆管理集合
     */
    public List<CsCar> selectCsCarList(CsCar csCar);

    /**
     * 新增车辆管理
     *
     * @param csCar 车辆管理
     * @return 结果
     */
    public int insertCsCar(CsCar csCar);

    /**
     * 修改车辆管理
     *
     * @param csCar 车辆管理
     * @return 结果
     */
    public int updateCsCar(CsCar csCar);

    /**
     * 删除车辆管理
     *
     * @param carId 车辆管理主键
     * @return 结果
     */
    public int deleteCsCarByCarId(Long carId);

    /**
     * 批量删除车辆管理
     *
     * @param carIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCsCarByCarIds(Long[] carIds);
    //往期竞拍和在售车辆
    List<CsCarVo> selectWangqiAndMaiIng(CsCar csCar);
    //我的关注
    List<CsCarVo> selectMyGuanZhu(Long userId);
    //今日竟拍
    List<CsCarVo> todayJingPai(CsCar csCar);
    //搜索车辆
    List<CsCarVo> searchCar(CsCar csCar);
    //全部车辆
    //倒叙
    List<CsCarVo> allCarDescSearch(CsCarDto csCar);
    //正序
    List<CsCarVo> allCarAscSearch(CsCarDto csCar);
    //查询
    List<CsCarVo> allCar(CsCarDto csCar);
    //我的预约列表
    List<CsCarVo> myReserve(CsCar csCar);
    //更新预约详情
    public int updateReserverDetail(@Param("carId") Long carId);
    //查预约状态
    public CsCar selectReserverStatus(@Param("carId") Long carId);


    /**
     * 作者:张文豪
     * @return 最新的carId
     */
//    查询最新增加的数据库
    @Select("SELECT LAST_INSERT_ID()")
    Long selectLastInsertId();

    //查询车辆状态为未开始和进行中的车辆
    List<CsCar> selectCsCarListStatus();
}
